The invention relates to systems and methods of defining a user interface for computer program.
Traditionally, graphical user interfaces have been employed to facilitate interaction of a user with software in a computer system. For example, typical objects in a GUI are icons presented on a background or “desktop”, with the icons representing a set of functions, application programs, system resources, or the like. These icons may be selected to instruct the computer to perform particular functions.
GUI objects are generally created as part of a static application program construct that describes how a particular GUI object appears and what function is performed when that GUI is selected. Many visually-based application builder tools, such as Visual Basic, available from Microsoft Corporation of Redmond, Wash., have a graphical user interface that includes a “toolbox”, a “form window”, and a “property sheet,” among others. A toolbox typically contains icons that represent different classes of components, or software modules. During a UI (user interface) construction session, a form window is displayed for the user to compose an application UI. A component selected from the toolbox may be “dropped”, or otherwise placed, within the form window. Placing a component means placing an icon or other visual representation of the component, within the form window. A property sheet displays properties, or attributes, which relate to the selected component. The properties can include, but are not limited to, information relating to the size, color, and name of the selected component. Programmers then insert code for each object to handle events generated by a user during operation.
After an application has been developed, a user generally has a limited ability to customize the user interface by modifying properties associated with certain GUI objects. In general, a property sheet displays a fixed set of properties that can be modified to customize, or configure, a given component. Hence, a user can select and modify different properties in the property sheet in order to customize a component. Simple components typically have fewer associated properties than larger components, and can therefore be readily customized by making selections in a property sheet.
As computer usage becomes increasingly widespread, the desire for custom computer applications that are specific to the needs of a particular user is also increasing. The desire is driven in part by the need to customize the software to the user's needs rather than force the user to adjust to the software, which can be tedious, time-consuming and non-productive.